/*
 * Copyright (C) 2016 yixun All Rights Reserved.
 * 
 * HaveReceiveRefund.java
 */
package com.emm.yixun.common.model;
import java.io.Serializable;

import java.math.BigDecimal;
import com.alibaba.fastjson.annotation.JSONField;
import java.util.Date;

/**
 * [文件名称]<br>
 * HaveReceiveRefund.java<br>
 * <br>
 * [文件描述]<br>
 * 已收/退款表 pojo bean<br>
 * <br>
 * [修改记录]<br>
 * 2016-07-12 18:42:43 创建<br>
 * @version 1.00
 */
public class HaveReceiveRefund extends CommonModel implements Serializable{
    /**
	 * 序列化UID
	 */
	private static final long serialVersionUID = 1L;

	/**
	 *主键、自动增长
	 */
	private Long id;
	/**
	 *应收款ID,关联fin_tm_need_receive_refund表
	 */
	private Long receivablesId;
	/**
	 *关联ID，根据收款类型决定,和应收款记录保持一致
	 */
	private Long relationId;
	/**
	 *原已收款单据ID，多个用，隔开。用于内部转账，如10000,10001,1002
	 */
	private String originalReceivedId;
	/**
	 *抵扣金额
	 */
	private BigDecimal deductibleAmount;
	/**
	 *实收金额
	 */
	private BigDecimal realAmount;
	/**
	 *票据号码
	 */
	private String billCode;
	/**
	 *具体类容,见枚举值 StatementTypeEnum
	 */
	private Long statementType;
	/**
	 *结算人员，关联系统用户表
	 */
	private Long statementId;
	/**
	 *结算日期
	 */
	@JSONField (format="yyyy-MM-dd HH:mm:ss")
	private Date statementDate;
	/**
	 *付款方式:[{key:payment_method,values:[{no:1,alias:LUMP_SUM,remark:一次性付款},{no:2,alias:INSTALLMENT_PAYMENT,remark:分期付款},{no:3,alias:COMMERCIAL_MORTGAGE,remark:商业按揭},{no:4,alias:PROVIDENT_FUND_MORTGAGE,remark:公积金按揭},{no:5,alias:COMBINED_LOAN,remark:组合贷款}]}]
	 */
	private String paymentMethod;
	/**
	 *根据付款方式决定，如一次性付款、公积金、首付款、按揭银行、1期、2期等
	 */
	private String receivablesFunds;
	/**
	 *0认筹 1认购 2签约 3面积补差,和应收款记录保持一致
	 */
	private String receivablesType;
	/**
	 *当付款方式为1、2、4时填写
	 */
	private String agentName;
	/**
	 *当付款方式为1、2、4时填写
	 */
	private String orgName;
	/**
	 *应收日期
	 */
	@JSONField (format="yyyy-MM-dd HH:mm:ss")
	private Date receivablesDate;
	/**
	 *0正常 1已转帐
	 */
	private String transferStatus;
	/**
	 *客户ID,冗余，关联查询时用
	 */
	private Long customerId;
	/**
	 *客户ID,冗余，关联查询时用
	 */
	private Long roomId;
	/**
	 *房款类型，见枚举HousingFundTypeEnum
	 */
	private String housingFundType;
	/**
	 *业务标志，见枚举businessFlagEnum
	 */
	private String businessFlag;
	/**
	 *0已收款 1已退款
	 */
	private String docType;
	/**
	 *备注
	 */
	private String remark;
	/**
	 *商户ID
	 */
	private Long merchantId;
	/**
	 *保存到最后一级房产code码，作用于项目数据权限
	 */
	private String accessCode;
	/**
	 *用户编码,关联用户表
	 */
	private String userCode;
	/**
	 *创建人ID,关联用户表
	 */
	private Long createUserId;
	/**
	 *创建时间格式：yyyy-MM-dd HH:mm:ss
	 */
	@JSONField (format="yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	/**
	 *修改人ID,关联用户表
	 */
	private Long updateUserId;
	/**
	 *修改时间格式：yyyy-MM-dd HH:mm:ss
	 */
	@JSONField (format="yyyy-MM-dd HH:mm:ss")
	private Date updateTime;
	/**
	 *是否删除:0否 1是
	 */
	private String delFlag;
	/**
	 *复核状态 （0 未复核 1 已复核）
	 */
	private String reChecked;
	/**
	 *复核结果 （0 未通过 1 已通过）
	 */
	private String result;
	/**
	 *银行账号
	 */
	private String bankAccount;
	/**
	 *新票据单号
	 */
	private String newBillCode;
	/**
	 *更换票据人员
	 */
	private Long billUserId;
	/**
	 *更换票据日期
	 */
	@JSONField (format="yyyy-MM-dd HH:mm:ss")
	private Date billDate;
	/**
	 *更换票据备注
	 */
	private String billRemark;
	/**
	 *复核人
	 */
	private Long checkUserId;
	/**
	 *复核时间
	 */
	@JSONField (format="yyyy-MM-dd HH:mm:ss")
	private Date checkDate;
	/**
	 *手续费
	 */
	private BigDecimal counterFee;
	/**
	 *复核不通过说明
	 */
	private String checkRemark;
	/**
	 *退款说明
	 */
	private String refundRemark;
	//操作来源0待退款退款,1已收款退款,2待收款收款
	private String opSource;
	//原已收款ID
    private Long haveReceiveId;

	/**	 
	 *设置 :主键、自动增长
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**	 
	 *获取 :主键、自动增长
	 */
	public Long getId() {
		return this.id;
	}

	/**	 
	 *设置 :应收款ID,关联fin_tm_need_receive_refund表
	 */
	public void setReceivablesId(Long receivablesId) {
		this.receivablesId = receivablesId;
	}

	/**	 
	 *获取 :应收款ID,关联fin_tm_need_receive_refund表
	 */
	public Long getReceivablesId() {
		return this.receivablesId;
	}

	/**	 
	 *设置 :关联ID，根据收款类型决定,和应收款记录保持一致
	 */
	public void setRelationId(Long relationId) {
		this.relationId = relationId;
	}

	/**	 
	 *获取 :关联ID，根据收款类型决定,和应收款记录保持一致
	 */
	public Long getRelationId() {
		return this.relationId;
	}

	/**	 
	 *设置 :原已收款单据ID，多个用，隔开。用于内部转账，如10000,10001,1002
	 */
	public void setOriginalReceivedId(String originalReceivedId) {
		this.originalReceivedId = originalReceivedId;
	}

	/**	 
	 *获取 :原已收款单据ID，多个用，隔开。用于内部转账，如10000,10001,1002
	 */
	public String getOriginalReceivedId() {
		return this.originalReceivedId;
	}

	/**	 
	 *设置 :抵扣金额
	 */
	public void setDeductibleAmount(BigDecimal deductibleAmount) {
		this.deductibleAmount = deductibleAmount;
	}

	/**	 
	 *获取 :抵扣金额
	 */
	public BigDecimal getDeductibleAmount() {
		return this.deductibleAmount;
	}

	/**	 
	 *设置 :实收金额
	 */
	public void setRealAmount(BigDecimal realAmount) {
		this.realAmount = realAmount;
	}

	/**	 
	 *获取 :实收金额
	 */
	public BigDecimal getRealAmount() {
		return this.realAmount;
	}

	/**	 
	 *设置 :票据号码
	 */
	public void setBillCode(String billCode) {
		this.billCode = billCode;
	}

	/**	 
	 *获取 :票据号码
	 */
	public String getBillCode() {
		return this.billCode;
	}

	/**	 
	 *设置 :具体类容,见枚举值 StatementTypeEnum
	 */
	public void setStatementType(Long statementType) {
		this.statementType = statementType;
	}

	/**	 
	 *获取 :具体类容,见枚举值 StatementTypeEnum
	 */
	public Long getStatementType() {
		return this.statementType;
	}

	/**	 
	 *设置 :结算人员，关联系统用户表
	 */
	public void setStatementId(Long statementId) {
		this.statementId = statementId;
	}

	/**	 
	 *获取 :结算人员，关联系统用户表
	 */
	public Long getStatementId() {
		return this.statementId;
	}

	/**	 
	 *设置 :结算日期
	 */
	public void setStatementDate(Date statementDate) {
		this.statementDate = statementDate;
	}

	/**	 
	 *获取 :结算日期
	 */
	public Date getStatementDate() {
		return this.statementDate;
	}

	/**	 
	 *设置 :付款方式:[{key:payment_method,values:[{no:1,alias:LUMP_SUM,remark:一次性付款},{no:2,alias:INSTALLMENT_PAYMENT,remark:分期付款},{no:3,alias:COMMERCIAL_MORTGAGE,remark:商业按揭},{no:4,alias:PROVIDENT_FUND_MORTGAGE,remark:公积金按揭},{no:5,alias:COMBINED_LOAN,remark:组合贷款}]}]
	 */
	public void setPaymentMethod(String paymentMethod) {
		this.paymentMethod = paymentMethod;
	}

	/**	 
	 *获取 :付款方式:[{key:payment_method,values:[{no:1,alias:LUMP_SUM,remark:一次性付款},{no:2,alias:INSTALLMENT_PAYMENT,remark:分期付款},{no:3,alias:COMMERCIAL_MORTGAGE,remark:商业按揭},{no:4,alias:PROVIDENT_FUND_MORTGAGE,remark:公积金按揭},{no:5,alias:COMBINED_LOAN,remark:组合贷款}]}]
	 */
	public String getPaymentMethod() {
		return this.paymentMethod;
	}

	/**	 
	 *设置 :根据付款方式决定，如一次性付款、公积金、首付款、按揭银行、1期、2期等
	 */
	public void setReceivablesFunds(String receivablesFunds) {
		this.receivablesFunds = receivablesFunds;
	}

	/**	 
	 *获取 :根据付款方式决定，如一次性付款、公积金、首付款、按揭银行、1期、2期等
	 */
	public String getReceivablesFunds() {
		return this.receivablesFunds;
	}

	/**	 
	 *设置 :0认筹 1认购 2签约 3面积补差,和应收款记录保持一致
	 */
	public void setReceivablesType(String receivablesType) {
		this.receivablesType = receivablesType;
	}

	/**	 
	 *获取 :0认筹 1认购 2签约 3面积补差,和应收款记录保持一致
	 */
	public String getReceivablesType() {
		return this.receivablesType;
	}

	/**	 
	 *设置 :当付款方式为1、2、4时填写
	 */
	public void setAgentName(String agentName) {
		this.agentName = agentName;
	}

	/**	 
	 *获取 :当付款方式为1、2、4时填写
	 */
	public String getAgentName() {
		return this.agentName;
	}

	/**	 
	 *设置 :当付款方式为1、2、4时填写
	 */
	public void setOrgName(String orgName) {
		this.orgName = orgName;
	}

	/**	 
	 *获取 :当付款方式为1、2、4时填写
	 */
	public String getOrgName() {
		return this.orgName;
	}

	/**	 
	 *设置 :应收日期
	 */
	public void setReceivablesDate(Date receivablesDate) {
		this.receivablesDate = receivablesDate;
	}

	/**	 
	 *获取 :应收日期
	 */
	public Date getReceivablesDate() {
		return this.receivablesDate;
	}

	/**	 
	 *设置 :0正常 1已转帐
	 */
	public void setTransferStatus(String transferStatus) {
		this.transferStatus = transferStatus;
	}

	/**	 
	 *获取 :0正常 1已转帐
	 */
	public String getTransferStatus() {
		return this.transferStatus;
	}

	/**	 
	 *设置 :客户ID,冗余，关联查询时用
	 */
	public void setCustomerId(Long customerId) {
		this.customerId = customerId;
	}

	/**	 
	 *获取 :客户ID,冗余，关联查询时用
	 */
	public Long getCustomerId() {
		return this.customerId;
	}

	/**	 
	 *设置 :客户ID,冗余，关联查询时用
	 */
	public void setRoomId(Long roomId) {
		this.roomId = roomId;
	}

	/**	 
	 *获取 :客户ID,冗余，关联查询时用
	 */
	public Long getRoomId() {
		return this.roomId;
	}

	/**	 
	 *设置 :房款类型，见枚举HousingFundTypeEnum
	 */
	public void setHousingFundType(String housingFundType) {
		this.housingFundType = housingFundType;
	}

	/**	 
	 *获取 :房款类型，见枚举HousingFundTypeEnum
	 */
	public String getHousingFundType() {
		return this.housingFundType;
	}

	/**	 
	 *设置 :业务标志，见枚举businessFlagEnum
	 */
	public void setBusinessFlag(String businessFlag) {
		this.businessFlag = businessFlag;
	}

	/**	 
	 *获取 :业务标志，见枚举businessFlagEnum
	 */
	public String getBusinessFlag() {
		return this.businessFlag;
	}

	/**	 
	 *设置 :0已收款 1已退款
	 */
	public void setDocType(String docType) {
		this.docType = docType;
	}

	/**	 
	 *获取 :0已收款 1已退款
	 */
	public String getDocType() {
		return this.docType;
	}

	/**	 
	 *设置 :备注
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**	 
	 *获取 :备注
	 */
	public String getRemark() {
		return this.remark;
	}

	/**	 
	 *设置 :商户ID
	 */
	public void setMerchantId(Long merchantId) {
		this.merchantId = merchantId;
	}

	/**	 
	 *获取 :商户ID
	 */
	public Long getMerchantId() {
		return this.merchantId;
	}

	/**	 
	 *设置 :保存到最后一级房产code码，作用于项目数据权限
	 */
	public void setAccessCode(String accessCode) {
		this.accessCode = accessCode;
	}

	/**	 
	 *获取 :保存到最后一级房产code码，作用于项目数据权限
	 */
	public String getAccessCode() {
		return this.accessCode;
	}

	/**	 
	 *设置 :用户编码,关联用户表
	 */
	public void setUserCode(String userCode) {
		this.userCode = userCode;
	}

	/**	 
	 *获取 :用户编码,关联用户表
	 */
	public String getUserCode() {
		return this.userCode;
	}

	/**	 
	 *设置 :创建人ID,关联用户表
	 */
	public void setCreateUserId(Long createUserId) {
		this.createUserId = createUserId;
	}

	/**	 
	 *获取 :创建人ID,关联用户表
	 */
	public Long getCreateUserId() {
		return this.createUserId;
	}

	/**	 
	 *设置 :创建时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	/**	 
	 *获取 :创建时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public Date getCreateTime() {
		return this.createTime;
	}

	/**	 
	 *设置 :修改人ID,关联用户表
	 */
	public void setUpdateUserId(Long updateUserId) {
		this.updateUserId = updateUserId;
	}

	/**	 
	 *获取 :修改人ID,关联用户表
	 */
	public Long getUpdateUserId() {
		return this.updateUserId;
	}

	/**	 
	 *设置 :修改时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	/**	 
	 *获取 :修改时间格式：yyyy-MM-dd HH:mm:ss
	 */
	public Date getUpdateTime() {
		return this.updateTime;
	}

	/**	 
	 *设置 :是否删除:0否 1是
	 */
	public void setDelFlag(String delFlag) {
		this.delFlag = delFlag;
	}

	/**	 
	 *获取 :是否删除:0否 1是
	 */
	public String getDelFlag() {
		return this.delFlag;
	}

	/**	 
	 *设置 :复核状态 （0 未复核 1 已复核）
	 */
	public void setReChecked(String reChecked) {
		this.reChecked = reChecked;
	}

	/**	 
	 *获取 :复核状态 （0 未复核 1 已复核）
	 */
	public String getReChecked() {
		return this.reChecked;
	}

	/**	 
	 *设置 :复核结果 （0 未通过 1 已通过）
	 */
	public void setResult(String result) {
		this.result = result;
	}

	/**	 
	 *获取 :复核结果 （0 未通过 1 已通过）
	 */
	public String getResult() {
		return this.result;
	}

	/**	 
	 *设置 :银行账号
	 */
	public void setBankAccount(String bankAccount) {
		this.bankAccount = bankAccount;
	}

	/**	 
	 *获取 :银行账号
	 */
	public String getBankAccount() {
		return this.bankAccount;
	}

	/**	 
	 *设置 :新票据单号
	 */
	public void setNewBillCode(String newBillCode) {
		this.newBillCode = newBillCode;
	}

	/**	 
	 *获取 :新票据单号
	 */
	public String getNewBillCode() {
		return this.newBillCode;
	}

	/**	 
	 *设置 :更换票据人员
	 */
	public void setBillUserId(Long billUserId) {
		this.billUserId = billUserId;
	}

	/**	 
	 *获取 :更换票据人员
	 */
	public Long getBillUserId() {
		return this.billUserId;
	}

	/**	 
	 *设置 :更换票据日期
	 */
	public void setBillDate(Date billDate) {
		this.billDate = billDate;
	}

	/**	 
	 *获取 :更换票据日期
	 */
	public Date getBillDate() {
		return this.billDate;
	}

	/**	 
	 *设置 :更换票据备注
	 */
	public void setBillRemark(String billRemark) {
		this.billRemark = billRemark;
	}

	/**	 
	 *获取 :更换票据备注
	 */
	public String getBillRemark() {
		return this.billRemark;
	}

	/**	 
	 *设置 :复核人
	 */
	public void setCheckUserId(Long checkUserId) {
		this.checkUserId = checkUserId;
	}

	/**	 
	 *获取 :复核人
	 */
	public Long getCheckUserId() {
		return this.checkUserId;
	}

	/**	 
	 *设置 :复核时间
	 */
	public void setCheckDate(Date checkDate) {
		this.checkDate = checkDate;
	}

	/**	 
	 *获取 :复核时间
	 */
	public Date getCheckDate() {
		return this.checkDate;
	}

	/**	 
	 *设置 :手续费
	 */
	public void setCounterFee(BigDecimal counterFee) {
		this.counterFee = counterFee;
	}

	/**	 
	 *获取 :手续费
	 */
	public BigDecimal getCounterFee() {
		return this.counterFee;
	}

	/**	 
	 *设置 :复核不通过说明
	 */
	public void setCheckRemark(String checkRemark) {
		this.checkRemark = checkRemark;
	}

	/**	 
	 *获取 :复核不通过说明
	 */
	public String getCheckRemark() {
		return this.checkRemark;
	}

	/**	 
	 *设置 :退款说明
	 */
	public void setRefundRemark(String refundRemark) {
		this.refundRemark = refundRemark;
	}

	/**	 
	 *获取 :退款说明
	 */
	public String getRefundRemark() {
		return this.refundRemark;
	}

	public String getOpSource() {
		return opSource;
	}

	public void setOpSource(String opSource) {
		this.opSource = opSource;
	}

	public Long getHaveReceiveId() {
		return haveReceiveId;
	}

	public void setHaveReceiveId(Long haveReceiveId) {
		this.haveReceiveId = haveReceiveId;
	}
	
	

}
